using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Data; 
using System.Data.SqlClient; 
using System.Data.SqlTypes; 
using SolucionUtiles; 
using SolucionEntidad; 
namespace SolucionDatos 
{ 
   public class ArticuloDao 
    { 
        private SqlConnection cn; 
        public ArticuloDao(SqlConnection cn) 
        { 
           this.cn = cn; 
        } 
        public void insert(Articulo obj)
        { 
           SqlCommand command = new SqlCommand("INSERT INTO articulo " + 
           "(codigoArticulo,nombreArticulo,idTipoArticulo,idTipoInventario,estado,ubicacionAlmacen,fechaRegistro,precioVenta,idFile,existenciaMinima) VALUES" + 
           "(@codigoArticulo,@nombreArticulo,@idTipoArticulo,@idTipoInventario,@estado,@ubicacionAlmacen,@fechaRegistro,@precioVenta,@idFile,@existenciaMinima)", this.cn); 

command.Parameters.Add(new SqlParameter("@codigoArticulo", obj.codigoArticulo)); 
command.Parameters.Add(new SqlParameter("@nombreArticulo", obj.nombreArticulo)); 
command.Parameters.Add(new SqlParameter("@idTipoArticulo", obj.idTipoArticulo)); 
command.Parameters.Add(new SqlParameter("@idTipoInventario", obj.idTipoInventario)); 
command.Parameters.Add(new SqlParameter("@estado", obj.estado)); 
command.Parameters.Add(new SqlParameter("@ubicacionAlmacen", obj.ubicacionAlmacen)); 
command.Parameters.Add(new SqlParameter("@fechaRegistro", obj.fechaRegistro)); 
command.Parameters.Add(new SqlParameter("@precioVenta", obj.precioVenta)); 
command.Parameters.Add(new SqlParameter("@idFile", obj.idFile)); 
command.Parameters.Add(new SqlParameter("@existenciaMinima", obj.existenciaMinima)); 
command.ExecuteNonQuery(); 
} 
  		public void update(Articulo obj) 
    	{ 
        	SqlCommand command = new SqlCommand("UPDATE Articulo " + 
			" SET " + 
"nombreArticulo=@nombreArticulo" + 
",idTipoArticulo=@idTipoArticulo" + 
",idTipoInventario=@idTipoInventario" + 
",estado=@estado" + 
",ubicacionAlmacen=@ubicacionAlmacen" + 
",fechaRegistro=@fechaRegistro" + 
",precioVenta=@precioVenta" + 
",idFile=@idFile" + 
",existenciaMinima=@existenciaMinima" + 
 " WHERE " + 
"codigoArticulo=@codigoArticulo" 
,this.cn); 
command.Parameters.Add(new SqlParameter("@codigoArticulo", obj.codigoArticulo)); 
command.Parameters.Add(new SqlParameter("@nombreArticulo", obj.nombreArticulo)); 
command.Parameters.Add(new SqlParameter("@idTipoArticulo", obj.idTipoArticulo)); 
command.Parameters.Add(new SqlParameter("@idTipoInventario", obj.idTipoInventario)); 
command.Parameters.Add(new SqlParameter("@estado", obj.estado)); 
command.Parameters.Add(new SqlParameter("@ubicacionAlmacen", obj.ubicacionAlmacen)); 
command.Parameters.Add(new SqlParameter("@fechaRegistro", obj.fechaRegistro)); 
command.Parameters.Add(new SqlParameter("@precioVenta", obj.precioVenta)); 
command.Parameters.Add(new SqlParameter("@idFile", obj.idFile)); 
command.Parameters.Add(new SqlParameter("@existenciaMinima", obj.existenciaMinima)); 
command.ExecuteNonQuery(); 
} 
       public void delete(Articulo obj){ 
SqlCommand command = new SqlCommand("DELETE FROM articulo WHERE "  
 +"codigoArticulo=@codigoArticulo" 
, this.cn); 
command.Parameters.Add(new SqlParameter("@codigoArticulo", obj.codigoArticulo)); 
command.ExecuteNonQuery(); 
} 
        public Articulo get(Articulo obj) 
{ 
   Articulo record = null; 
    SqlCommand command = new SqlCommand("SELECT codigoArticulo,nombreArticulo,idTipoArticulo,idTipoInventario,estado,ubicacionAlmacen,fechaRegistro,precioVenta,idFile,existenciaMinima FROM articulo where " 
 +"codigoArticulo=@codigoArticulo" 
, this.cn); 
command.Parameters.Add(new SqlParameter("@codigoArticulo", obj.codigoArticulo)); 

    SqlDataReader dr = command.ExecuteReader();
dr.Read(); 
record = new Articulo(); 
if (dr["codigoArticulo"] == DBNull.Value) { record.codigoArticulo = SqlString.Null; } else { record.codigoArticulo = (String)dr["codigoArticulo"]; } 
if (dr["nombreArticulo"] == DBNull.Value) { record.nombreArticulo = SqlString.Null; } else { record.nombreArticulo = (String)dr["nombreArticulo"]; } 
if (dr["idTipoArticulo"] == DBNull.Value) { record.idTipoArticulo = SqlInt32.Null; } else { record.idTipoArticulo = (Int32)dr["idTipoArticulo"]; } 
if (dr["idTipoInventario"] == DBNull.Value) { record.idTipoInventario = SqlInt32.Null; } else { record.idTipoInventario = (Int32)dr["idTipoInventario"]; } 
if (dr["estado"] == DBNull.Value) { record.estado = SqlInt32.Null; } else { record.estado = (Int32)dr["estado"]; } 
if (dr["ubicacionAlmacen"] == DBNull.Value) { record.ubicacionAlmacen = SqlString.Null; } else { record.ubicacionAlmacen = (String)dr["ubicacionAlmacen"]; } 
if (dr["fechaRegistro"] == DBNull.Value) { record.fechaRegistro = SqlDateTime.Null; } else { record.fechaRegistro = (DateTime)dr["fechaRegistro"]; } 
if (dr["precioVenta"] == DBNull.Value) { record.precioVenta = SqlDecimal.Null; } else { record.precioVenta = (Decimal)dr["precioVenta"]; } 
if (dr["idFile"] == DBNull.Value) { record.idFile = SqlInt32.Null; } else { record.idFile = (Int32)dr["idFile"]; } 
if (dr["existenciaMinima"] == DBNull.Value) { record.existenciaMinima = SqlInt32.Null; } else { record.existenciaMinima = (Int32)dr["existenciaMinima"]; } 
this.cn.Close(); 
return record; 
} 
     public List<Articulo> getList() 
{ 
   List<Articulo> list = new List<Articulo>(); 
    SqlCommand command = new SqlCommand("SELECT codigoArticulo,nombreArticulo,idTipoArticulo,idTipoInventario,estado,ubicacionAlmacen,fechaRegistro,precioVenta,idFile,existenciaMinima FROM articulo", this.cn); 
    SqlDataReader dr = command.ExecuteReader(); 
    while (dr.Read()) 
    { 
Articulo obj = new Articulo(); 
if (dr["codigoArticulo"] == DBNull.Value) { obj.codigoArticulo = SqlString.Null; } else { obj.codigoArticulo = (String)dr["codigoArticulo"]; } 
if (dr["nombreArticulo"] == DBNull.Value) { obj.nombreArticulo = SqlString.Null; } else { obj.nombreArticulo = (String)dr["nombreArticulo"]; } 
if (dr["idTipoArticulo"] == DBNull.Value) { obj.idTipoArticulo = SqlInt32.Null; } else { obj.idTipoArticulo = (Int32)dr["idTipoArticulo"]; } 
if (dr["idTipoInventario"] == DBNull.Value) { obj.idTipoInventario = SqlInt32.Null; } else { obj.idTipoInventario = (Int32)dr["idTipoInventario"]; } 
if (dr["estado"] == DBNull.Value) { obj.estado = SqlInt32.Null; } else { obj.estado = (Int32)dr["estado"]; } 
if (dr["ubicacionAlmacen"] == DBNull.Value) { obj.ubicacionAlmacen = SqlString.Null; } else { obj.ubicacionAlmacen = (String)dr["ubicacionAlmacen"]; } 
if (dr["fechaRegistro"] == DBNull.Value) { obj.fechaRegistro = SqlDateTime.Null; } else { obj.fechaRegistro = (DateTime)dr["fechaRegistro"]; } 
if (dr["precioVenta"] == DBNull.Value) { obj.precioVenta = SqlDecimal.Null; } else { obj.precioVenta = (Decimal)dr["precioVenta"]; } 
if (dr["idFile"] == DBNull.Value) { obj.idFile = SqlInt32.Null; } else { obj.idFile = (Int32)dr["idFile"]; } 
if (dr["existenciaMinima"] == DBNull.Value) { obj.existenciaMinima = SqlInt32.Null; } else { obj.existenciaMinima = (Int32)dr["existenciaMinima"]; } 
list.Add(obj); 
} 
return list; 
} 
} 
} 
